
// import { Message } from 'element-ui'
// import NProgress from 'nprogress' // progress bar
// import 'nprogress/nprogress.css' // progress bar style
// import { getToken } from '@/utils/auth' // get token from cookie
// import getPageTitle from '@/utils/get-page-title'

// NProgress.configure({ showSpinner: false }) // NProgress Configuration

// const whiteList = ['/login'] // no redirect whitelist

import router from './router'
import store from './store'
// 导入
import NProgress from 'nprogress' // progress bar

import 'nprogress/nprogress.css' // progress bar style

// 动态标题
import getPageTitle from '@/utils/get-page-title'

// 路由导航守卫
// 假设这个项目有 其他的页面是不需要token 就可以访问的 : /404  /abc
// 白名单 : 不需要登录 就可以访问的页面

const whiteList = ['/login', '/404']

router.beforeEach(async(to, from, next) => {
    // console.log("导航守卫",to,store)
    // 进度条开始
    const token = store.state.user.token
    NProgress.start() 
    // 如果有token 并且 去登录页 那么返回首页
    if (token && to.path === "/login"){
    next('/')
    // 如果没有token 不去白名单页 那么去登录页
  }else if(!token&& whiteList.includes(to.path) === false){
    next('/login')
  }else{
    // 如果有token 没有个人信息     
    if(token && !store.state.user.info.userId){
      // 调用 vuex action
      await store.dispatch("user/getUserInfo")
    }
    next()
  }
})

  // 跳转结束后的操作
router.afterEach(() => {
  // 进度条结束
    NProgress.done()  
})

// 进度条结束后的操作
router.beforeEach((to, from, next) => {
  document.title = getPageTitle(to.meta.title)
  next()
})





